<?php

class Retailer_Backend_Adminhtml_WholesaleController extends Mage_Adminhtml_Controller_action
{

    protected function _initAction() {
            $this->loadLayout()
                    ->_setActiveMenu('backend/wholesale')
                    ->_addBreadcrumb(Mage::helper('adminhtml')->__('Sales Manager'), Mage::helper('adminhtml')->__('Sales Manager'));

            return $this;
    }

    public function indexAction() {
            $this->_initAction()
                    ->renderLayout();
    }

    public function editAction() {
            $id     = $this->getRequest()->getParam('id');
            $model  = Mage::getModel('sales/order')->load($id);

            if ($model->getId() || $id == 0) {
                    $data = Mage::getSingleton('adminhtml/session')->getFormData(true);
                    if (!empty($data)) {
                            $model->setData($data);
                    }

                    Mage::register('backend_data', $model);

                    $this->loadLayout();
                    $this->_setActiveMenu('backend/wholesale');

                    $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Wholesale Manager'), Mage::helper('adminhtml')->__('Wholesale Manager'));
                    $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Wholesale News'), Mage::helper('adminhtml')->__('Wholesale News'));

                    $this->getLayout()->getBlock('head')->setCanLoadExtJs(true);

                    $this->_addContent($this->getLayout()->createBlock('backend/adminhtml_wholesale_edit'))
                            ->_addLeft($this->getLayout()->createBlock('backend/adminhtml_wholesale_edit_tabs'));

                    $this->renderLayout();
            } else {
                    Mage::getSingleton('adminhtml/session')->addError(Mage::helper('backend')->__('Product does not exist'));
                    $this->_redirect('*/*/');
            }
    }

    public function newAction() {
            $this->_forward('edit');
    }

    public function saveAction() {
            if ($data = $this->getRequest()->getPost()) {

//                    if(isset($_FILES['filename']['name']) && $_FILES['filename']['name'] != '') {
//                            try {
//                                    /* Starting upload */
//                                    $uploader = new Varien_File_Uploader('filename');
//
//                                    // Any extention would work
//                            $uploader->setAllowedExtensions(array('jpg','jpeg','gif','png'));
//                                    $uploader->setAllowRenameFiles(false);
//
//                                    // Set the file upload mode
//                                    // false -> get the file directly in the specified folder
//                                    // true -> get the file in the product like folders
//                                    //	(file.jpg will go in something like /media/f/i/file.jpg)
//                                    $uploader->setFilesDispersion(false);
//
//                                    // We set media as the upload dir
//                                    $path = Mage::getBaseDir('media') . DS ;
//                                    $uploader->save($path, $_FILES['filename']['name'] );
//
//                            } catch (Exception $e) {
//
//                    }
//
//                    //this way the name is saved in DB
//                            $data['filename'] = $_FILES['filename']['name'];
//                    }
                    

                    $model = Mage::getModel('sales/order')->load($this->getRequest()->getParam('id'));
                    //$model->setId($this->getRequest()->getParam('id'));
                    //$user = Mage::getModel('admin/user');
                    //if($user->authenticate($data['username'],$data['password'])){
//                        $user->loadByUsername($data['username']);
//                        $model->setStoreId($user->getId());
//                        $websites = $model->getWebsiteIds();
//                        array_push($websites,$user->getId());
//                        $model->setWebsiteIds($websites);
//                        $model->setFirstname($data['firstname']);
//                        $model->setLastname($data['lastname']);
                        //echo "BOOGAH!";
                    //}

                    try {
//                            if ($model->getCreatedAt() == NULL || $model->getUpdatedAt() == NULL) {
//                                    $model->setCreatedAt(now())
//                                            ->setUpdatedAt(now());
//                            } else {
//                                    $model->setUpdatedAt(now());
//                            }
//                            echo "1";
                            $model->save();
//                            echo "2";
                            Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('backend')->__('Item was successfully saved'));
                            Mage::getSingleton('adminhtml/session')->setFormData(false);

                            if ($this->getRequest()->getParam('back')) {
                                    $this->_redirect('*/*/edit', array('id' => $model->getId()));
                                    return;
                            }
                            $this->_redirect('*/*/');
                            return;
        } catch (Exception $e) {
            Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
            Mage::getSingleton('adminhtml/session')->setFormData($data);
            $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
            return;
        }
    }
    Mage::getSingleton('adminhtml/session')->addError(Mage::helper('backend')->__('Unable to find item to save'));
    $this->_redirect('*/*/');
    }

    public function deleteAction() {
            if( $this->getRequest()->getParam('id') > 0 ) {
                    try {
                            $model = Mage::getModel('backend/backend');

                            $model->setId($this->getRequest()->getParam('id'))
                                    ->delete();

                            Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Item was successfully deleted'));
                            $this->_redirect('*/*/');
                    } catch (Exception $e) {
                            Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
                            $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
                    }
            }
            $this->_redirect('*/*/');
    }

public function massDeleteAction() {
    $backendIds = $this->getRequest()->getParam('backend');
    if(!is_array($backendIds)) {
                    Mage::getSingleton('adminhtml/session')->addError(Mage::helper('adminhtml')->__('Please select item(s)'));
    } else {
        try {
            foreach ($backendIds as $backendId) {
                $backend = Mage::getModel('backend/backend')->load($backendId);
                $backend->delete();
            }
            Mage::getSingleton('adminhtml/session')->addSuccess(
                Mage::helper('adminhtml')->__(
                    'Total of %d record(s) were successfully deleted', count($backendIds)
                )
            );
        } catch (Exception $e) {
            Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
        }
    }
    $this->_redirect('*/*/index');
}

public function massStatusAction()
{
    $backendIds = $this->getRequest()->getParam('backend');
    if(!is_array($backendIds)) {
        Mage::getSingleton('adminhtml/session')->addError($this->__('Please select item(s)'));
    } else {
        try {
            foreach ($backendIds as $backendId) {
                $backend = Mage::getSingleton('backend/backend')
                    ->load($backendId)
                    ->setStatus($this->getRequest()->getParam('status'))
                    ->setIsMassupdate(true)
                    ->save();
            }
            $this->_getSession()->addSuccess(
                $this->__('Total of %d record(s) were successfully updated', count($backendIds))
            );
        } catch (Exception $e) {
            $this->_getSession()->addError($e->getMessage());
        }
    }
    $this->_redirect('*/*/index');
}

public function exportCsvAction()
{
    $fileName   = 'backend.csv';
    $content    = $this->getLayout()->createBlock('backend/adminhtml_customers_grid')
        ->getCsv();

    $this->_sendUploadResponse($fileName, $content);
}

public function exportXmlAction()
{
    $fileName   = 'backend.xml';
    $content    = $this->getLayout()->createBlock('backend/adminhtml_customers_grid')
        ->getXml();

    $this->_sendUploadResponse($fileName, $content);
}

protected function _sendUploadResponse($fileName, $content, $contentType='application/octet-stream')
{
    $response = $this->getResponse();
    $response->setHeader('HTTP/1.1 200 OK','');
    $response->setHeader('Pragma', 'public', true);
    $response->setHeader('Cache-Control', 'must-revalidate, post-check=0, pre-check=0', true);
    $response->setHeader('Content-Disposition', 'attachment; filename='.$fileName);
    $response->setHeader('Last-Modified', date('r'));
    $response->setHeader('Accept-Ranges', 'bytes');
    $response->setHeader('Content-Length', strlen($content));
    $response->setHeader('Content-type', $contentType);
    $response->setBody($content);
    $response->sendResponse();
    die;
}
}